package com.guoxin.part4.chapter15;

/**
 * 观察者接口
 *
 * @author guoxin
 * @date 2019/8/30
 */
public interface Observable {
	/**
	 * 任务声明周期枚举类型
	 */
	enum Cycle {
		/**
		 * 启动、运行、结束、异常
		 */
		STARTED, RUNNING, DONE, ERROR
	}

	/**
	 * 获取当前任务的生命周期
	 */
	Cycle getCycle();

	/**
	 * 定义启动线程的方法，主要作用是为了屏蔽Thread的其他方法
	 */
	void start();

	/**
	 * 定义线程的打断方法，作用于start方法一样，也是为了屏蔽Thread的其他方法
	 */
	void interrupt();

}
